
clear

use "afb_full_r6.dta", clear
keep if strpos(respno, "ZIM") == 1
gen round = "r6"

drop country* locationlevel*


************************
***   Demographic    ***
************************

gen surveyor_origin = q100
gen surveyor_gov = surveyor_origin == 8 if surveyor_origin != 98 & surveyor_origin != -1
gen surveyor_pol = surveyor_origin == 7 if surveyor_origin != 98 & surveyor_origin != -1

label var surveyor_gov "Government sent surveyor"
label var surveyor_pol "Political party/politician sent surveyor"

* Demographic

gen age = q1 if q1 < 104 & q1 >= 18
gen year_birth = 2014-age

gen schooling = q97 if q97 < 10 & q97 > -1
recode schooling (0/1=0) (2=1) (3=2) (4=3) (5=4) (6/9=5)

gen urban_rural = urbrur
gen urban = urban_rural == 1

gen gender = q101
gen male = gender == 1

gen race = q102
keep if race == 1

gen language = q2
gen ndebele_language = language == 27 if language != 1 & language != 9995
gen shona_language = ((language >= 861 & language <= 870) | language == 26) if language != 1 & language != 9995

gen tribe = q87
gen ndebele = tribe == 26 if tribe != 9999
gen shona = (tribe == 13 | tribe == 25 | (tribe >= 861 & tribe <= 871)) if tribe != 9999

replace ndebele = ndebele_language if ndebele==.
replace ndebele = 0 if ndebele==.
replace ndebele = 1  if ndebele_language==1 & ndebele==0 & shona==0

replace shona = shona_language if shona==.
replace shona = 0 if shona==.
replace shona = 1  if shona_language==1 & shona==0 &  ndebele==0 

gen other = (ndebele ==0 & shona == 0)
drop ndebele_language shona_language

label var age "Age"
label var year_birth "Birth year"
label var schooling "Schooling"
label var urban "Urban"
label var male "Male"
label var language "Language"
label var tribe "Tribe"
label var ndebele "Ndebele tribe"
label var shona "Shona group tribes"
label var other "Other tribes"



******************************
***   Economic variables   ***
******************************

* Economic 

gen no_food = q8a
gen no_water = q8b
gen no_meds = q8c
gen no_fuel = q8d
gen no_cash = q8e

foreach var of varlist no_food-no_cash {
	replace `var' = . if `var' >= 8 | `var' < 0
}

label var no_food "Go without food"
label var no_water "Go without water"
label var no_meds "Go without medicine"
label var no_fuel "Go without fuel"
label var no_cash "No cash"


* Assets

gen owns_radio = q91a
gen owns_tv = q91b
gen owns_vehicle = q91c
gen owns_mobile = q91d

foreach var of varlist owns_radio-owns_mobile {
	replace `var' = . if `var' >= 9 | `var' < 0
}

label var owns_radio "Owns radio"
label var owns_tv "Owns TV"
label var owns_vehicle "Owns motor vehicle"
label var owns_mobile "Owns mobile phone"


* Employment

gen empl_stat = q95
gen look_for_job = (empl_stat == 1) if empl_stat < 9 & empl_stat >= 0
gen part_time = empl_stat == 2 if empl_stat < 9 & empl_stat >= 0
gen full_time = empl_stat == 3 if empl_stat < 9 & empl_stat >= 0

label var look_for_job "No job and looking for job"
label var part_time "Part time job"
label var full_time "Full time job"


*****************************************
***   Political Engagement Variables  ***
*****************************************

* Local engagement

gen assoc_rel = q19a
gen assoc_comm = q19b
gen raise_issue = q20b

foreach var of varlist assoc_rel-raise_issue {
	replace `var' = . if `var' >= 9 | `var' == -1
}

label var assoc_rel "Member of religious association"
label var assoc_comm "Member of community association"
label var raise_issue "Join others in raising issues"


* Political engagement

gen att_rally = q23a
gen att_pol_meeting = q23b
gen persuade_others = q23c
gen work_for_cand = q23d
gen int_pub_aff = q13
gen disc_pol = q14

foreach var of varlist att_rally - disc_pol {
	tab `var'
	replace `var' = . if `var' >= 9 | `var' == -1
}

label var att_rally "Attend campaign rally"
label var att_pol_meeting "Attend campaign meeting"
label var persuade_others "Persuade others to vote for party"
label var work_for_cand "Worked for candidate"
label var int_pub_aff "Interested in public affairs"
label var disc_pol "Discusses politics"

gen req_action = q27a
gen contact_med = q27b
gen contact_official = q27c
gen refuse_tax = q27d
gen att_demo = q27e

foreach var of varlist req_action-att_demo {
	tab `var'
	replace `var' = . if `var' >= 9 | `var' == -1
}

label var req_action "Join others to request gov action"
label var contact_med "Contact media for change"
label var contact_official "Contact officials for change"
label var refuse_tax "Refuse to pay tax or fee to gov"
label var att_demo "Attend demonstration"


* Consuming political news

gen radio = q12a
gen tv = q12b
gen newspapers = q12c
gen internet = q12d
gen social_media = q12e

foreach var of varlist radio-social_media {
	tab `var'
	replace `var' = . if `var' >= 9 | `var' == -1
}

label var radio "Listens to radio for news"
label var tv "Watches TV for news"
label var newspapers "Reads newspaper for news"
label var internet "Uses internet for news"
label var social_media "Uses social media for news"


* Voting

gen registered = q21 >=1
replace registered = . if q21 >= 8

gen voted = q21 == 1
replace voted = . if q21 >= 8

label var registered "Registered to vote"
label var voted "Voted in elections"

****************************************************
***   Understanding of democratic institutions   ***
****************************************************

* Democracy

gen elec_free = q22-1 if q22 != -1 & q22 < 8

gen hold_accountable = q31
gen pro_elections = q32
gen parties_needed = q33
gen opp_hold_acc = q35
gen media_hold_acc = q36
gen parl_laws = q37
gen pres_obey_laws = q38
gen two_term = q39

foreach var of varlist hold_accountable-two_term {
	recode `var' (1=0) (2=1) (5=2) (9/98=.) (-1=.)
	tab1 `var'
}

foreach var of varlist pro_elections opp_hold_acc media_hold_acc parl_laws two_term {
	recode `var' (4=0) (3=1) (2=2) (1=3) (0=4)
}

label var elec_free "Freeness and fairness of last elections"

label var hold_accountable "Gov produce results quickly vs. citizens hold gov accountable"
label var pro_elections "Don't elect vs. elect officials"
label var parties_needed "Parties generate chaos vs. parties necessary"
label var opp_hold_acc "Opposition work with gov vs. opposition act as watchdog"
label var media_hold_acc "Media avoid negative reporting vs. media checks gov"
label var parl_laws "Pres makes law vs. parl makes laws"
label var pres_obey_laws "Pres doesn't need to obey laws vs. pres must obey laws"
label var two_term "No term limit vs. two term limit"




********************************
***   Quality of democracy   ***
********************************

gen democracy = q40-1
gen sat_demo = q41

gen media_abuse_freedom = q45a
gen party_comp_confl = q45b

gen parl_accountable = q47a
gen remove_leaders = q47b

gen careful_say = q51a

gen votes_fair = q48a
gen bribed = q48d
gen real_choice = q48e
gen threatened = q48f
gen fear_intimidation = q49
recode fear_intimidation (0=3) (1=2) (2=1) (3=0)

gen freedom_say = q15a-1
gen freedom_join = q15b-1
gen freedom_choose = q15c-1


* Authoritarian preferences

gen reject_one_party = q28a-1
gen reject_military = q28b-1
gen reject_one_man = q28c-1

foreach var of varlist elec_free-reject_one_man {
	replace `var' = . if `var' >= 7 | `var' <= -1
	tab `var'
}

foreach var of varlist reject_* {
	recode `var' (0=4) (1=3) (2=2) (3=1) (4=0)
}

label var democracy "Zimbabwe is a democracy"
label var sat_demo "Satisfied with democracy in Zimbabwe"
label var media_abuse_freedom "Media abuses its freedoms"
label var party_comp_confl "Party competition leads to conflict"

label var parl_accountable "Elections ensures citizens' views are reflected in parl"
label var remove_leaders "Elections allows citizens to remove bad leaders"

label var reject_one_party "Reject single party rule"
label var reject_military "Reject military rule"
label var reject_one_man "Reject one man rule"

label var freedom_say "Free to say what you think"
label var freedom_join "Free to join any political organization"
label var freedom_choose "Free to choose who to vote for"


* Views about government

gen trust_pres = q52a
gen trust_mp = q52b 
gen trust_ec = q52c
gen trust_tax = q52d
gen trust_lg = q52e
gen trust_inc = q52f
gen trust_opp = q52g
gen trust_police = q52h
gen trust_army = q52i
gen trust_courts = q52j
gen trust_trad = q52k
gen trust_relig = q52l


foreach var of varlist trust_pres-trust_relig {
	replace `var' = . if `var' >= 8 | `var' < 0
	tab `var'
}

label var trust_pres "Trust president"
label var trust_mp "Trust MP"
label var trust_ec "Trust Electoral Commission"
label var trust_tax "Trust tax office"
label var trust_lg "Trust LG"
label var trust_inc "Trust incumbent party"
label var trust_opp "Trust opposition party"
label var trust_police "Trust police"
label var trust_army "Trust army"
label var trust_courts "Trust courts and dept of justice"
label var trust_trad "Trust traditional leaders"
label var trust_relig "Trust religious leaders"


* Public goods

gen post_office = ea_fac_a == 1 if ea_fac_a != -1 & ea_fac_a <= 2
gen school = ea_fac_b == 1 if ea_fac_b != -1 & ea_fac_b <= 2
gen police_station = ea_fac_c == 1 if ea_fac_c != -1 & ea_fac_c <= 2
gen transport = ea_fac_g == 1 if ea_fac_g != -1 & ea_fac_g <= 2
gen electricity = ea_svc_a == 1 if ea_svc_a != -1 & ea_svc_a <= 2
gen piped_water = ea_svc_b == 1 if ea_svc_b != -1 & ea_svc_b <= 2
gen sewage = ea_svc_c == 1 if ea_svc_c != -1 & ea_svc_c <= 2
gen cell_service = ea_svc_d == 1 if ea_svc_d != -1 & ea_svc_d <= 2
gen health_clinic = ea_fac_d == 1 if ea_fac_d != -1 & ea_fac_d <= 2
gen rec_facilities = .
gen placesof_worship = .
gen townhalls = .
gen petrol_station = .
gen bottle_store = .
gen supermarket = .
gen cafes = .
gen market_stalls = ea_fac_e == 1 if ea_fac_e != -1 & ea_fac_e <= 2
gen bank = ea_fac_f == 1 if ea_fac_f != -1 & ea_fac_f <= 2
gen police_vehicles = ea_sec_a == 1 if ea_sec_a != -1 & ea_sec_a <= 2
gen soldiers_army = ea_sec_b == 1 if ea_sec_b != -1 & ea_sec_b <= 2
gen militia = .
gen roadblack_police = ea_sec_c == 1 if ea_sec_c != -1 & ea_sec_c <= 2
gen roadblock_private = .
gen customs_checkpoint = ea_sec_d == 1 if ea_sec_d != -1 & ea_sec_d <= 2
gen roadblock_community = ea_sec_e == 1 if ea_sec_e != -1 & ea_sec_e <= 2

gen pavement = ea_road_a == 1 if ea_road_a != -1 & ea_road_a <= 2


*************************
***   Final cleanup   ***
*************************

keep round respno dateintr strtime surveyor_gov - pavement

drop tribe language

foreach var of varlist surveyor_gov - pavement {
	disp "`var'"
	count if (`var' < -1 | `var' >= 8) & `var' != .
}

split dateintr, parse("-")
gen year = 2014
gen month = 11
ren dateintr1 day
drop dateintr*
